/**
 * 
 * @param {*} obj 对象 
 * @param {*} root 节点
 */
function Render(obj, root) {
  const el = document.createElement(obj.tag)
  if (typeof obj.children === 'string') {
    const text = document.createTextNode(obj.children)
    el.appendChild(text)
  } else if (obj.children) {
    // 如果为数组，递归调用Render
    obj.children.forEach(child => Render(child, el))
  }
  root.appendChild(el)
}

/**
 * tag： 标签名称
 * children：1.数组：子节点  2.字符串：文本
 */
const obj = {
  tag: 'div',
  children: [
    { tag: 'span', children: 'hello,vue' }
  ]
}

// 渲染到body下
Render(obj, document.body)